Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and/or application software that may be either provided by the manufacturers of the electronic devices, telecommunication carriers, or third parties. Firmware and/or application software often may contain software bugs. New versions of the firmware and software are periodically released to fix the bugs, introduce new features, or both. There is a fundamental problem in providing access to new releases of firmware and software. The electronic devices are often constrained in terms of resources, such as available memory. Attempts to upgrade firmware or software by end-users often results in making the device, or some features of the device, inoperable.
Changing firmware in electronic devices requires a lot of caution and care as unsuccessful attempts may result in making the device inoperable. Generating update packages used in changing firmware in electronic devices involves applying the generated update packages in electronic devices that are often constrained in several different ways. Attempts to upgrade firmware and/or software in constrained devices are often hampered by limited user interaction capabilities and slow communication speeds on these devices. Additionally, determination of the version of firmware or software currently being executed on the electronic device may be difficult, especially if such determination is made with minimal end-user interaction.
The manufacturing time of electronic devices with firmware/software is affected by the time it takes to install firmware and/or application software in non-volatile memory, such as FLASH memory. If the size of the firmware and/or application software is large, fewer electronic devices can be flashed with an upgrade within a given period of time. Increasingly, the number of electronic devices that can be flashed (with firmware and/or application software) within a given period of assembly/manufacturing time is requiring innovative solutions to the flashing problem.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings appended hereto.